package com.efast.dmom.mes.datahandlers.entity;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.efast.dmom.mes.bean.LabelParam;
import com.efast.dmom.mes.bean.ResultBean;
import com.efast.dmom.mes.dao.entity.LabelParamDao;
import com.efast.dmom.mes.datahandlers.base.ConfigurationDataHandler;
import com.efast.dmom.mes.entity.LabelParamEntity;
import com.efast.dmom.mes.util.SpringWebUtils;
import com.efast.dmom.mes.util.TimeUtil;

@Component
public class LabelParamDataHandler extends ConfigurationDataHandler<LabelParam> {

	@Autowired
	private LabelParamDao labelParamDao;

	@Override
	public ResultBean save(LabelParam obj) {
		ResultBean resultBean = new ResultBean(true, ' ');
		LabelParamEntity labelParamEntity = obj.getInnerData();

		labelParamEntity.setSiteId(DataHandlerUtils.getSiteId());
		labelParamEntity.setCreationTime(TimeUtil.getLocalDateTime());
		labelParamEntity.setCreationTimeZone(TimeUtil.getLocalTimeZone());
		labelParamEntity.setCreator(SpringWebUtils.getRequestUser());
		labelParamEntity.setLastModifiedTime(TimeUtil.getLocalDateTime());
		labelParamEntity.setLastModifiedTimeZone(TimeUtil.getLocalTimeZone());
		labelParamEntity.setLastModifier(SpringWebUtils.getRequestUser());
//	    labelParamEntity.setCreationPid(DataHandlerUtils.getDmomPid());
//	    labelParamEntity.setLastModifiedPid(DataHandlerUtils.getDmomPid());
		labelParamEntity.setRowStatus(1);
		labelParamEntity.setRowTrxId(1);

		labelParamDao.save(labelParamEntity);
		resultBean.setSuccess(true);
		resultBean.setMessage("保存成功！");
		return resultBean;
	}

	@Override
	public ResultBean update(LabelParam obj) {
		ResultBean resultBean = new ResultBean(true, ' ');
		LabelParamEntity labelParamEntity = obj.getInnerData();

		labelParamEntity.setLastModifiedTime(TimeUtil.getLocalDateTime());
		labelParamEntity.setLastModifiedTimeZone(TimeUtil.getLocalTimeZone());
		labelParamEntity.setLastModifier(SpringWebUtils.getRequestUser());
//	    labelParamEntity.setLastModifiedPid(DataHandlerUtils.getDmomPid());
		labelParamEntity.setRowTrxId(1);

		labelParamDao.update(labelParamEntity);
		resultBean.setSuccess(true);
		resultBean.setMessage("修改成功！");
		return resultBean;
	}

	@Override
	public ResultBean delete(LabelParam obj) {
		ResultBean resultBean = new ResultBean(true, ' ');
		LabelParamEntity labelParamEntity = obj.getInnerData();

		labelParamEntity.setLastModifiedTime(TimeUtil.getLocalDateTime());
		labelParamEntity.setLastModifiedTimeZone(TimeUtil.getLocalTimeZone());
		labelParamEntity.setLastModifier(SpringWebUtils.getRequestUser());
//	    labelParamEntity.setLastModifiedPid(DataHandlerUtils.getDmomPid());
		labelParamEntity.setRowTrxId(1);

		labelParamDao.delete(labelParamEntity);
		resultBean.setSuccess(true);
		resultBean.setMessage("删除成功！");
		return resultBean;
	}

	@Override
	public LabelParam getById(long id) {
		LabelParam labelParam = new LabelParam();
		LabelParamEntity labelParamEntity = labelParamDao.getById(id);
		if (labelParamEntity != null) {
			labelParam.setInnerData(labelParamEntity);
		}
		return labelParam;
	}

	public List<LabelParam> getByLabelId(long labelId) {
		List<LabelParam> paramList = new ArrayList<LabelParam>();
		List<LabelParamEntity> entityList = labelParamDao.getByLabelId(labelId);
		if (entityList != null && entityList.size() > 0) {
			for (LabelParamEntity entity : entityList) {
				LabelParam labelParam = new LabelParam();
				labelParam.setInnerData(entity);
				paramList.add(labelParam);
			}
			return paramList;
		}
		return null;
	}

	public void deleteByLabelId(LabelParam obj) {
		LabelParamEntity labelParamEntity = obj.getInnerData();

		labelParamEntity.setLastModifiedTime(TimeUtil.getLocalDateTime());
		labelParamEntity.setLastModifiedTimeZone(TimeUtil.getLocalTimeZone());
		labelParamEntity.setLastModifier(SpringWebUtils.getRequestUser());
//	    labelParamEntity.setLastModifiedPid(DataHandlerUtils.getDmomPid());
		labelParamEntity.setRowTrxId(1);
		
		labelParamDao.deleteByLabelId(labelParamEntity);
	}

	public LabelParam getByLabelIdAndParam(LabelParam labelParam) {
		LabelParam param = new LabelParam();
		LabelParamEntity labelParamEntity = labelParamDao.getByLabelIdAndParam(param.getInnerData());
		if (labelParamEntity != null) {
		param.setInnerData(labelParamEntity);
		}
		return param;
	}

	@Override
	public ResultBean deleteBatch(List<LabelParam> labelParamList) {
		ResultBean resultBean = new ResultBean(true, ' ');
		List<LabelParamEntity> entityList = new ArrayList<LabelParamEntity>();
			for (LabelParam labelParam:labelParamList) {
				LabelParamEntity labelParamEntity = labelParam.getInnerData();
				labelParamEntity.setLastModifiedTime(TimeUtil.getLocalDateTime());
				labelParamEntity.setLastModifiedTimeZone(TimeUtil.getLocalTimeZone());
				labelParamEntity.setLastModifier(SpringWebUtils.getRequestUser());
//			    labelParamEntity.setLastModifiedPid(DataHandlerUtils.getDmomPid());
				labelParamEntity.setRowTrxId(1);
				entityList.add(labelParamEntity);
			}
			labelParamDao.deleteBatch(entityList);
			resultBean.setSuccess(true);
			resultBean.setMessage("删除成功！");
			return resultBean;
	}

	@Override
	public ResultBean saveBatch(List<LabelParam> obj) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ResultBean updateBatch(List<LabelParam> obj) {
		// TODO Auto-generated method stub
		return null;
	}

}
